.three-column-layout {
	--aside-gap: 40px;
	--aside-width: 300px;
	--align-with-article-title-letter-cap-heights: 0.4em;
	position: relative;
	display: flex;
	justify-content: space-between;
	gap: var(--aside-gap);
	// Creates a stacking context for the left popout sidebar's sticky positioning
	transform: translate(0);

	&.three-column-layout {
		max-width: var(--max-extended-width);
	}

	.close-chapter-selection,
	.open-chapter-selection {
		display: none;
		flex: 0 0 auto;
		fill: var(--color-navy);
		background: none;
		border: none;
		box-sizing: content-box;
		padding: 6px;
		font-size: 0;
		cursor: pointer;

		svg {
			width: 36px;
			height: 36px;
		}
	}

	.reading-material {
		flex: 1 2 100%;

		article {
			width: 100%;
		}

		.prev-next {
			display: flex;
			justify-content: space-between;
			width: 100%;
			gap: 20px;
			
			a {
				display: flex;
				align-items: center;
				gap: 20px;
				
				svg {
					fill: var(--color-navy);
					flex: 0 0 auto;
				}

				&:last-of-type {
					text-align: right;
				}
			}
		}
	}

	@media print {
		aside {
			display: none;
		}
	}

	// Page contents right sidebar is removed on smaller screens
	@media screen and (max-width: 1200px) {
		.contents {
			display: none;
		}
	}

	// Overlaid fold-out menu for chapter selection
	@media screen and (max-width: 1000px) {
		gap: 0;
		
		.chapters {
			position: sticky;
			width: 0;
			margin-top: calc(-120 * var(--variable-px));
			overflow: visible;
			z-index: 10;
			height: 0;
			transition: height 0.25s ease-in-out 0.25s;

			&.open {
				height: 100vh;
				transition: height 0s;

				.wrapper-outer {
					left: 0;
				}
			}
			
			.wrapper-outer {
				position: absolute;
				background: white;
				top: 0;
				bottom: 0;
				padding-left: var(--page-edge-padding);
				margin-left: calc(-1 * var(--page-edge-padding));
				padding-bottom: calc(120 * var(--variable-px));
				margin-bottom: calc(-120 * var(--variable-px));
				padding-top: 16px;
				margin-top: -16px;
				border-right: var(--border-thickness) solid var(--color-walnut);
				box-sizing: border-box;
				transition: left 0.25s ease-in-out;
				left: calc(-1 * (var(--aside-width) + 10px));
				width: var(--aside-width);

				&::after {
					content: "";
					position: absolute;
					top: 0;
					bottom: 0;
					right: -10px;
					width: 10px;
					background: linear-gradient(to right, rgba(0, 0, 0, 0.2), transparent);
				}

				.wrapper-inner {
					position: relative;
					overflow-y: auto;
					height: 100%;
					padding-right: var(--page-edge-padding);

					ul:first-of-type {
						margin-top: calc(120 * var(--variable-px) + var(--align-with-article-title-letter-cap-heights));
					}

					.close-chapter-selection {
						display: block;
						position: absolute;
						top: calc(20px - 6px);
						right: calc(20px - 6px);
					}
				}
			}
		}

		.reading-material {
			margin-left: auto;
			margin-right: auto;
			width: 100%;

			.article-title {
				display: flex;
				white-space: nowrap;

				h1 {
					white-space: normal;
					display: flex;

					.open-chapter-selection {
						display: inline-block;
						padding-top: 0;
						padding-bottom: 0;
						margin-left: -6px;
						margin-right: calc(20px - 6px);
					}
				}
			}
		}
	}

	aside {
		position: sticky;
		align-self: flex-start;
		overflow-y: auto;
		top: 0;
		width: var(--aside-width);
		max-height: 100vh;
		margin-top: -40px;
		flex: 0 1 auto;

		&.contents > ul,
		.wrapper-inner > ul {
			&:first-of-type {
				margin-top: calc(40px + var(--align-with-article-title-letter-cap-heights));
			}

			&:last-of-type {
				margin-bottom: calc(40 * var(--variable-px));
			}
		}

		ul {
			list-style: none;
			padding: 0;
			margin: 0;
			margin-top: 40px;

			ul {
				margin-top: 0;
				margin-left: 1em;

				ul {
					margin-left: 2em;

					ul {
						margin-left: 3em;

						ul {
							margin-left: 4em;
	
							ul {
								margin-left: 5em;
							}
						}
					}
				}
			}

			li {
				margin-top: 0.5em;
				
				a {
					color: var(--color-walnut);
	
					&:hover {
						color: var(--color-crimson);
					}
				}
		
				&:not(.title) a {
					text-decoration: none;
				}
	
				&.title,
				&.chapter {
					font-weight: 700;
				}
			}
		}

		&.chapters {
			li.active,
			li.active a {
				color: var(--color-ale);
			}

			ul a {
				display: block;
				padding-left: 1em;
				text-indent: -1em;
			}
		}

		&.contents {
			li {
				position: relative;
				padding-left: 12px;

				&.active::before {
					content: "";
					position: absolute;
					top: 0;
					bottom: 0;
					left: 0;
					width: 4px;
					background: var(--color-ale);
				}

				a:not(:hover) span {
					display: none;
				}
			}
		}
	}
}
